Lateral search

ABSTRACT

A search query is received. Personal information for a user is then determined. A search is performed in a general subdomain of general content using the search query. For example, the general subdomain of general content may be a WWW search. Then, a vertical subdomain is determined based on the personal information. A search is then performed in the vertical subdomain of specialized content using the search query. The search performed in the general subdomain and the search performed in the vertical subdomain generate general search results and vertical search results. The results may be combined and outputted to a client.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application claims the benefit of the filing date of U.S.Provisional Patent Application No. 60/533,327, entitled “LateralSearch”, filed Dec. 29, 2003, Attorney Docket No. 017887-013500US, whichis incorporated by reference in its entirety for all purposes.

This application is related to U.S. patent application Ser. No.10/819,082, entitled “Search System Using Search Subdomain and Hints toSubdomains in Search Query Statements and Sponsored Results on aSubdomain”, filed Apr. 5, 2004, (hereinafter “Hints application”), whichis incorporated by reference in its entirety for all purposes.

BACKGROUND OF THE INVENTION

The present invention generally relates to content retrieval and morespecifically to methods and apparatus for retrieving content in responseto a search request.

With the advent of the Internet and the multitude of web pages and mediacontent available to a user over the World Wide Web (WWW), there hasbecome a need to provide the users with streamlined approach to filterand obtain desired information from the WWW. Search systems andprocessors have been developed to meet the needs of users to obtaindesired information. Examples of the technologies may be accessedthrough Yahoo!, Google, and other sites. Typically, a user inputs aquery and a search process returns one or more links (in the case ofsearching web), documents and/or references (in the case of a differentsearch corpus related to the query), etc.

Typically, when a query is received, a search may be performed withinformation in a generic or default corpus, such as the WWW. This may bereferred to as a general search. Also, some search systems allow a userto perform searches in subdomains that include specialized content. Forexample, Yahoo! includes content that is organized in a number ofsubdomains. An example of a subdomain may be automobiles, shopping,news, classifieds, and the like. In order for a user to perform a searchin one of these subdomains, the user needs to know which subdomains theuser desires to search and also how to access these subdomains. Forexample, a user may have to navigate through links to select a subdomainto search. Accordingly, the ease of performing a general search is lostbecause a user has to select or specify a subdomain to search.Additionally, when a subdomain search is requested, a general search isnot performed.

BRIEF SUMMARY OF THE INVENTION

Embodiments of the present invention generally relate to performingsearches in vertical subdomains. In one embodiment, a search query isreceived. Personal information for a user is then determined. A searchmay be performed in a general subdomain of general content using thesearch query. For example, the general subdomain of general content maybe a WWW search. Then, a vertical subdomain is determined based on thepersonal information. A search is then performed in the verticalsubdomain of specialized content using the search query. The searchperformed in the general subdomain and the search performed in thevertical subdomain generate general search results and vertical searchresults, respectively. The results may be combined and outputted to aclient.

In one embodiment, a method of performing a search using a generalsubdomain including general content and one or more vertical subdomainsis provided. Each vertical subdomain includes specialized content. Themethod comprises: receiving a search query; determining personalinformation for a user; causing a search to be performed in a generalsubdomain of general content using the search query; determining avertical subdomain based on the personal information; and causing asearch to be performed in a vertical subdomain of specialized contentusing the search query.

In another embodiment, a search server for performing searches ingeneral content and specialized content is provided. The search servercomprises: a query processor configured to receive a query; one or moregeneral search engines configured to perform searches in a subdomainincluding at least a part of the general content; and one or morevertical search engines configured to perform searches in a subdomainincluding at least a part of the specialized content, wherein query issubmitted to a general search engine and a vertical search engine, thevertical search engine determined based on personal informationassociated with a user.

In yet another embodiment, a method for personalized informationretrieval for use with a plurality of electronic information retrievalengines is provided. At least one of the engines (a “general engine”)supports general queries against indexed Internet content and aplurality of the other engines (“vertical engines”) supports queriesagainst specialized content. The method comprises: storing informationpersonalized to a user; receiving a search query from the user;submitting the search query to the general engine; transmitting aresponse to the user based in part on output from the general engine;and automatically facilitating access to one or more of the verticalengines as a part of the response for the user, in a manner based atleast one of part of the personalized information and part of the searchquery.

In another embodiment, a method for personalized information retrievalfor use with a plurality of electronic information retrieval engines isprovided. At least one of the engines (a “general engine”) supportsgeneral queries against indexed Internet content and a plurality of theother engines (“vertical engines”) supports queries against specializedcontent. The method comprises: storing information personalized to auser in a computer system remote from the user; receiving a search queryfrom the user; submitting the search query to the general engine;transmitting a response to the user based in part on output from thegeneral engine; and automatically facilitating the user's access to oneor more of the vertical engines as part of the response, based in parton the personalized information.

In another embodiment, an information retrieval method for use with aplurality of electronic information retrieval engines is provided. Atleast one of the engines (a “general engine”) supports general queriesagainst indexed Internet content and a plurality of the other engines(“vertical engines”) supports queries against specialized content. Themethod comprises: receiving a search query from the user; submitting thesearch query to the general engine; transmitting a response to the userbased at least partly on output from the general engine; and when thesearch query includes a predetermined operator, automaticallyfacilitating the user's access to one or more of the vertical enginesselected independently of the predetermined operator.

In another embodiment, an information retrieval method for use with aplurality of electronic information retrieval engines is provided. Atleast one of the engines (a “general engine”) supports general queriesagainst indexed Internet content and a plurality of the other engines(“vertical engines”) supports queries against specialized content. Themethod comprises: presenting a graphical user interface to the userincluding one or more tabs corresponding to a plurality of the verticalengines; receiving a search query from the user; in a first interactionmode, receiving user input selecting at least one of the tabs; andautomatically facilitating the user's access to the vertical engines byprocessing the query using the vertical engine corresponding to theselected tab; and in a second interaction mode, submitting the searchquery to the general engine; transmitting a response to the user basedat least partly on output from the general engine; and automaticallyfacilitating the user's access to a selected one or more of the verticalengines as part of the response, based at least partly on the searchquery, wherein the corresponding vertical engines and the selectedvertical engines are controlled by the same business owner of thegeneral engine.

A further understanding of the nature and the advantages of theinventions disclosed herein may be realized by reference of theremaining portions of the specification and the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a search system according to embodiments ofthe present invention;

FIG. 2 depicts a more detailed embodiment of search server according toembodiments of the present invention;

FIG. 3 depicts a simplified flowchart of a method for performingsearches according to one embodiment of the present invention;

FIG. 4 depicts a block diagram of elements that might be used togenerate a response to a query according to one embodiment of thepresent invention;

FIG. 5 depicts examples of information that may be used by search serverto determine personal information to be used in a search according toone embodiment of the present invention;

FIG. 6 depicts an interface according to one embodiment of the presentinvention;

FIG. 7 depicts an interface according to one embodiment of the presentinvention; and

FIG. 8 depicts an interface according to one embodiment of the presentinvention.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of the invention will now be described, by way of example,not limitation. It is to be understood that the invention is of broadutility and may be used in many different contexts.

The example of a search process as described herein below can be modeledby a searcher presenting to a search system a query and receiving aresponse (search results) indicating the one or more “hits” found. Aquery can be in the form of a search query string comprising one or moretokens delimited by delimiters or parsing rules. In addition to varyinga search based on variations of the search query string, context mightbe also taken into account. For example, the querier might havepreviously set constraints on the search, such as to return onlyage-appropriate hits, prior searches might be taken into account, and aquerier identity (such as the Yahoo! ID currently associated with theWeb browser client submitting the search query string) and settings setby the user.

When a query is received by a search system, it processes the search andreturns one or more “hits”, where a “hit” is the atomic unit handled bythe search system. For example, where the search system manages astructured database, the hits are records from the structured database.Where the search system manages documents, such as text documents, imageand text documents, image documents, HTML documents, PDF documents, orthe like, the atomic unit is the document. It should be understood thatthe present invention is not limited to any particular atomic unit, butby way of example, much of this disclosure describes searching using thedocument as the atomic unit. Furthermore, a structured database is notrequired.

A hit is an atomic unit that the search system identifies as matchingcriteria defined by the query. It should be understood that the searchsystem need not provide all hits or only hits that match the query. Forexample, the search system might limit the number of hits returned tosome number, might apply other limitations to the query term, such asomitting hits that match the query, ignore duplicate hits, etc. Thesearch system might also expand the search results to include hits thatalmost match the query, hits that are designated to be included insearches, such as special topic hits, advertising hits, etc. Someexpansion or contraction might be dependent on the size or content ofthe search results prior to such expansion or contraction. For example,the search engine might add hits that are close if no hits wouldotherwise be returned and might remove hits if too many hits would havebeen returned, such as by deleting common words from queries prior tocompleting the search results.

A searcher can be a human user, such as a person typing in search termsinto a browser window to query a search engine via the Web, but can alsobe an automated process, such as a computer program capable of sendingqueries to search engines in the form expected by the search engine. Forexample, a computer program might generate queries and form HTTPmessages directed at a Web server coupled to a search engine.

In many of the examples shown herein, the search engine searches among aset of documents for documents (hits) that match the criteria defined bythe query. It should be understood that the term “document” is generallyused to refer to units of the corpus being searched. A document can be adocument, such as a contract, a file, a story, a writing, or the like,but might also be a snippet of text, data that might be considered partof a document in other contexts, program code, image data, a storedfile, or the like. Therefore, the term need not be narrowly construed.

In searching, the search engine might pull from all available documentsit has indexed, but the search engine might instead limit the search todocuments within one or more subdomains, where a subdomain is apreviously designated proper subset of all the documents available tothe search engine. In some instances, a subdomain might be furthersubdivided into smaller subdomains.

Examples of subdomains are the Yahoo! properties. Examples of Yahoo!properties include Yahoo! News, Yahoo! Sports, Yahoo! Mail, Yahoo!Shopping, Yahoo! Auctions, Yahoo! Weather, etc. Subdomains are usefulsearch tools as a user posing a query often knows that informationoutside of a particular domain would not be useful in that instance. Forexample, the user might be interested in obtaining weather informationfor New York. A global search might pick up many sports stories thatincidentally mention the weather in New York and its effect on somesports events, but the user might already have determined that any hitsoutside of the Yahoo! Weather property may not be useful. One advantageof the use of subdomains is that the user can enter a search in ageneric search input object, such as a dialog box, and have the searchserver determine the user's intended subdomain(s). The search server mayuse personal information and/or the search query to determine thesubdomain(s). Also, a general search may be performed in addition toperforming a subdomain search.

Referring to the figures, an exemplary search system will now bedescribed.

FIG. 1 is a block diagram of a search system 100 according toembodiments of the present invention. Using search system 100, a querierissues a search request to a search server using a search client, suchas a Web browser client. As shown in FIG. 1, a human user 103 or acomputer process 105 issues a query using search client 1 10. The searchquery, typically in the form of a search query string, is sent to asearch server 120, which returns search results responsive to the searchquery to search client 110. In other variations, the search query comesfrom one system and the results are routed to another system.

Search server 120 is shown coupled to several subdomain corpuses 132. Itshould be understood that, for storage efficiency or other reasons, thecontent or information of the subdomain corpuses might overlap such thatsome content or information is present in more than one subdomaincorpus. Throughout this disclosure, where there are multiple instancesof an object and the number of instances is not critical, the instancesare numbered from “1” to “N” with the understanding that the value of Nneed not be identical from use to use, unless otherwise indicated. Forexample, N is used as the number of subdomains, but that number mightvary from example to example. It should also be understood that nothinghere requires that all instances be used.

The interconnections between various systems need not be described indetail, as such methods of interconnections can be accomplished usingwell-known techniques. For example, search client 110 might be apersonal computer running an HTTP client, such as a Web browser client,and communicating with an HTTP server running at search server 120,interconnected over a network such as the global Internet. It should beunderstood that other embodiments also fall within the scope of theinvention. For example, search client 110 might be implemented as ahandheld device, a computer with no human user interface, a dedicateddevice, a kiosk, etc. Also, the clients and servers need not use HTTP,but might use a different protocol for making requests for pages andobjects and for responding to those requests.

In operation, and as described in further detail below, search client110 sends a search query string to search server 120, possibly alsoincluding personal information such as a Yahoo! ID of the Yahoo! usersending the request. With that personal information, search server 120might look up user demographics for the identified user and use that toperform the search. Search server 120 parses and analyzes the searchquery string to determine if a subdomain search is appropriate, thensends the query to the appropriate subdomain(s) and/or performs ageneral search.

FIG. 2 depicts a more detailed embodiment of search server 120 accordingto embodiments of the present invention. Search server 120 includes aquery processor 202, an engine determiner 204, a general search engine206, and one or more vertical search engines 208-1-208-N. Although asingle general search engine 206 is shown and one or more verticalsearch engines 208 are shown, it will be understood that any number ofgeneral search engines 206 and vertical search engines 208 may beprovided.

A plurality of subdomain corpuses 132 are depicted as a general corpus210 and one or more vertical corpuses 212(1)-212(N). It should beunderstood that any number of general corpuses 210 and vertical corpuses212 may be included. Although a one-to-one relationship from a searchengine to a corpus is shown, it should be understood that a searchengine may access multiple corpuses. Also, information may overlapbetween different corpuses including information in general corpus 210and vertical corpus 212.

General corpus 210 includes general information. For example, generalcorpus 210 may be information that is searched when a query is receivedthrough a generic search object box. General corpus 210 thus includesgeneral information that is not organized in specialized categories. Forexample, a general corpus may be the WWW, all of Yahoo!'s properties,all indexed content, and the like.

Vertical corpuses 212 are organized with specialized content. Forexample, a first vertical corpus may include information aboutautomobiles and a second vertical corpus may include information aboutweather. The content in the subdomains may be manually organized intothe specialized content or automatically organized. For example, a usermay decide that an article on automobiles should be in an automobilesubdomain or a program may automatically detect that the article isabout automobiles and store the article in the automobile subdomain.

Query processor 202 is configured to receive a query from search client110 and to determine personal information for a user. For example,personal information may be received from search client 110, determinedby query processor 202, retrieved from storage 214, etc. In oneembodiment, the personal information is information that is specific toa user and is used to determine which vertical engines to use insearching subdomains. For example, personal information may be a userID, a specification of user preferences, etc. Different types ofpersonal information will be described in more detail below.

The personal information and query is then received from query processor202 by engine determiner 204. Engine determiner 204 is configured todetermine a search engine in which to send the query. For example, thequery may be submitted to general search engine 206 in addition to oneor more vertical search engines 208.

In one embodiment, engine determiner 204 determines the engine in whichto submit a query based at least on a part of a query and/or thepersonal information. For example, personal preferences may be appliedto all searches received through a generic search object. Thepreferences may indicate that for all searches, certain corpuses shouldbe searched.

Also, the determination may be applied on a per-query basis. Forexample, depending on certain information, such as user aggregatebehavior, corpuses 212 may be determined. The user aggregate behaviormay indicate that a user has searched these corpuses 212 the most. Thesecorpuses 212 may be searched using the query.

Additionally, rules may be personalized for a user. For example, rulesmay indicate that a search for a celebrity name may cause a search to beperformed in a celebrity news corpus 212 and a music corpus 212.

In one embodiment, a query parser is used to deconstruct or segment thequery. For example, the query parser is used to determine that a queryis for a celebrity name. The query is sent through a rules engine thatuses rules to determine information about the query. For example, therules engine knows that 5000 names are celebrity names. The query isdeconstructed into segments and if some of the segments are found in thecelebrity names, then one or more corpuses 212 associated with thecelebrity names are determined. Additionally, other terms may beassociated with other corpuses 212. Accordingly, the rules engine isused to identify whether a query is appropriate for certain corpuses212.

The query may also be reformulated for a corpus 212. For example,information may be added to the query. If the query includes a segmentof “Las Vegas”, a zip code for Las Vegas may be added to the query for asearch in a yellow pages corpus 212.

Confidence values may also be used in searching corpuses 212. Theconfidence values may be based on user preferences or user histories. Ifa user had previous searches performed in a corpus 212 or if a user hasa user preference for a corpus 212, a higher confidence value may beassigned. The confidence values may be used to determine if a corpus 212should be searched. Queries for various corpuses 212 may be assignedconfidence values. A conditional may be used to determine that certaincorpuses 212 with confidence values above a certain number should besearched.

Also, confidence values may be assigned to search results received fromdifferent corpuses 212. The confidence value may indicate how relevantthe search results from the corpus 212 are to the query. A pagegenerator may only display certain results with confidence values over acertain amount.

Additional methods for determining a vertical corpus 212 to search aredescribed in the Hints application.

In one embodiment, when a query is received by engine determiner 204, itsends a query to general search engine 206 and one or more applicablevertical search engines 208. Thus, general search engine 206 performs asearch of general content found in general corpus 210 in addition to oneor more vertical search engines 208 that perform searches in one or morevertical corpuses 212. Accordingly, search results are generated fromgeneral content, such as indexed web content, and in addition to searchresults from specialized content. Also, in another embodiment, a generalsearch using general corpus 210 may only be performed or a verticalsearch using one or more vertical corpuses 212 may only be performed.

In one embodiment, vertical search engines 208 are controlled by abusiness owner of general engine 206. Accordingly, a general search maybe driven to a vertical search engine by the business owner.Additionally, paid ads associated with the vertical search engines maybe then placed with the output for the query.

In another embodiment, vertical engines 208 may be used to facilitateelectronic execution of a business transaction. For example, personalpremium content may be searched as a corpus 212. Information for auser's premium sports, auction, etc. subscriptions may be searched ascorpuses 212.

FIG. 3 depicts a simplified flowchart 300 of a method for performingsearches according to one embodiment of the present invention. In step302, a query is received. For example, a query may be received from auser 103 or a processor querier 105 through a search client 110. Thequery may include a search query string that is used to perform asearch.

In step 304, personal information is determined. For example, userinformation may be received from a user through search client 110 in theform of a user ID. In one embodiment, a cookie may provide userinformation. The user information may be used to retrieve personalinformation from stored information, such as user specifications thathave been stored.

In step 306, general search engine 206 performs a search withinformation in general corpus 210 using the query to determine generalsearch results. For example, a general search may be a search throughindexed web content.

In step 308, any vertical search engines 208 that may be used to performa search in any vertical corpuses 212 are determined. In one embodiment,the personal information determined in step 304 is used to determinevertical search engines 208. The personal information may indicate whichvertical search engines 208 (or vertical corpuses 212) are preferred bya user for certain searches. Additionally, vertical search engines 208may be determined based on at least a part of the query. For example,part of the query may indicate a vertical corpus 212 to search.

In step 310, a search is performed with one or more vertical corpuses212 using the query to generate vertical search results.

In step 312, the general and vertical search results are formatted. Forexample, the general and vertical search results may be combined into aweb page. Additionally, other information, such as sponsored links, ads,etc. may be included with the general and vertical search results.

In step 314, the formatted results are outputted. For example, a webpage may be outputted and displayed for a user to view. Additionally,the results may be sent to a user using other transports, such as auser's email address.

FIG. 4 depicts a block diagram of elements that might be used togenerate a response to a query according to one embodiment of thepresent invention. Search server 120 includes a matching ads database404, a matching inserts database 406, and a sponsored links database408. Search server 120 obtains search results 402 that have beengenerated from general search engine 206 and one or more vertical searchengines 208. The search results may be combined with information formatching ads 404, matching inserts 406, and sponsored links 408.

A page constructor 410 determines which search results and whichadditional information should be included in a page to send to a clientin response to a query. In one embodiment, page constructor 410 may usethe query to determine which information for matching ads 404, matchinginserts 406, and sponsored links 408 to include in a page. Additionally,other information, such as any personal information may be used todetermine the information to be included in the page. The information inmatching ads 404, matching inserts 406, and sponsored links 408 may alsobe determined based on the general search engine 206 or vertical searchengines 208 used to perform the search. For example, certain matchingads may be associated with different vertical corpuses 212. For example,music matching ads may be used if a CD vertical corpus 212 has beensearched.

Page constructor 410 then formats results from the general search engine206 and vertical search engines 208 in a page along with the additionalinformation. In one embodiment, links to the search results are providedwhere a link may be selected by a user. The link then causes a page ordocument to be retrieved and displayed. Additionally, the link may causean additional search to be performed. For example, a vertical searchengine may be accessed and a search performed.

One example of generating a page using page constructor 410 may be for aquery received from a user of “Tom Cruise”. The query is segmented andit is recognized that “Tom Cruise” is a celebrity name. It is alsodetermined that the user lives in the United States. It is thendetermined that a U.S. news corpus 212 should be searched for “TomCruise”. A conditional is also added that indicates a rule that thesearch results should only be displayed if more than five results arefound. Page constructor 410 receives the search results and determinesif the conditional is met. If more than five results from the U.S. newscorpus 212 are received, page constructor 410 displays the results in apage.

FIG. 5 depicts examples of information that may be used by search server120 to determine personal information to be used in a search accordingto one embodiment of the present invention. In one embodiment, userinformation may be inputted by a user. For example, a user may input auser ID or account number with a password. Also, cookies may be used tosend information to search server 120. For example, user accountinformation may be sent when a user submits a search or logs onto a website.

Information may also be received from a client 110 used by a user. Forexample, a geographic location of a device used by a user may bereceived or determined by search server 120. A location that includes animplicit geographic constraint may then be included in a query. Also,location information may be stored for a user and retrieved based upon auser ID or other user identification information. For example, thelocation information may be a user's default location that may be usedto determine vertical corpuses 212 to search in.

In one embodiment, information received from a client may be used bysearch server 120 to request information from a personal informationdatabase 502. In one embodiment, this information is stored on theserver side and is not stored with the client. For example, a user IDmay be used to retrieve information that is stored for the user ID. Partof the query may also be used to retrieve information. The storedinformation may be a user specification that indicates user preferences.The specification may include conditions that may be used in asubsequent query or conditions that will be used to determine a verticalsearch engine 208 to use. In one embodiment, a user may define thepersonal information found in personal information database 502 or apractitioner or owner of search server 120 may define the information.The specification may also define associations between personalinformation and certain vertical engines 208. The associations mayspecify which vertical search engines 208 are preferred by a user. Thosevertical search engines 208 would then be searched first. The definedassociations may be modified by a user and/or defined by a user or ownerof search server 120. Other personal information may be historicalactivity information for a user. For example, if a user typicallysearches certain corpuses, those corpuses may be selected for a search.

An example of a page 600 constructed by page constructor 410 is shown inFIG. 6. In this example, the search string was “camera”. Page 600includes information organized into different page layout areas 602,604, 606, 608, 610, 612, and 614.

The top of page 600 includes an indication of the search, a dialog boxin which another search can be initiated, and clickable links for help,home page, etc. General search results, such as search results from aWeb index for “camera”, are listed in layout area 608. In this example,upon a search query using the query string “camera”, the search serverpopulates storage 402 with Web search results, and possibly otherresults, populates storage 404 with advertisements to be associated withthe search string, populates storage 406 with inserts associated withthe search string and populates storage 408 with sponsored linksassociated with the search string.

Advertisements might be selected based on what views are sold. Thus, anadvertiser might pay to have a particular advertisement shown on asearch results page if the search query includes the word “camera”.Sponsored links might also be similarly positioned, such that the orderand/or placement of the links might depend on who pays for theirpresentation and for what search conditions.

Layout area 608 includes links that represent hits responsive to thesearch term and are preferably independent of the sponsors' links.Layout area 610 is provided for insertion of the matching advertisement,or a general advertisement in some cases. Layout area 612 and 214provide additional matching inserts, which are specific to the searchterms used, but are typically not search results, sponsored matches oradvertisements. In this example, layout area 612 contains links forexecuting alternative searches and layout area 614 contains links forsubdomain specific searches that might be alternatively executed.

In the preferred embodiment, however, searches in vertical corpuses 212can be run directly in the first instance from the search query dialogbox. For example, personal information may indicate that a user desiresa search in an auctions corpus when a search query of “camera” isreceived. The personal information may have been specified by a user orother entity, determined based on a user's prior activity (the user hadviewed camera auctions sites before), etc. This saves the user time andeffort and also allows for more targeted inserts, advertisements andsponsored links. In this example, the search server would direct thesearch string “camera” to a vertical search engine 208 specific toYahoo! Auctions.

The search results page would be more focused as a result. The matchinginserts might not include a link for yellow page searches for the searchterm and the sponsored links and advertisements can be selective. Thus,one sponsor might opt to purchase sponsored link placements for the term“camera” under the auction vertical corpus, but not under a generalsearch or a search in the yellow pages vertical corpus. In this manner,advertisements and sponsored links can be more focused. This is useful,for example, if an advertiser wants to reach users that are looking tobuy or sell cameras at auction, but not if that user is looking for thelocation of a local camera store.

Layout area 602 displays matching inserts 406. In this example, thosematching inserts are “Inside Yahoo!” links that relate to the searchterm. Layout area 604 displays directory matches, which are matches froma corpus encompassing the Yahoo! directory, a hierarchical arrangementof topics and links associated with those topics at various levels inthe hierarchy. Layout area 606 displays sponsored matches, which arehits provided to the user based on sponsorship of particular terms.

While the user might enter a simple search query such as “camera”, theuser might also enter more complex queries, including searches thatmight be applied to corpuses.

FIG. 7 depicts an example of a page 700 constructed by page constructor410. In this example, the search string was “flowers” shown in a generalsearch query object 702. General search query object is configured toreceive general search queries. For example, the queries may be for theWorld Wide Web. Embodiments of the present invention may determine andsearch corpuses 212 in addition to performing a general search inresponse to receiving a query in general search query object 702.

Page 700 includes information organized into different page layout areas704, 706, 708, and 710. Although these layouts are shown, it should berecognized that other layouts may be provided.

The top of page 700 includes an indication of the search, and clickablelinks for help, home page, etc. General search results, such as searchresults from a Web index for “flowers”, are listed in layout area 706and 708. In this example, upon a search query using the query string“flowers”, the search server populates storage 402 with Web searchresults, and possibly other results, populates storage 404 withadvertisements to be associated with the search string, populatesstorage 406 with inserts associated with the search string and populatesstorage 408 with sponsored links associated with the search string.

Advertisements might be selected based on what views are sold. Thus, anadvertiser might pay to have a particular advertisement shown on asearch results page if the search query includes the word “flower”.Sponsored links might also be similarly positioned, such that the orderand/or placement of the links might depend on who pays for theirpresentation and for what search conditions.

Layout area 706 includes links that represent hits responsive to thesearch term and are preferably independent of the sponsors' links.Layout area 708 is provided for insertion of the sponsored links. Layoutarea 710 provide additional matching inserts, which are specific to thesearch terms used, but are typically not search results, sponsoredmatches or advertisements.

Accordingly, searches in vertical corpuses 212 can be run from thesearch query dialog box 702. For example, personal information mayindicate that a user desires a search in a yellow pages corpus when asearch query of “flowers” is received. The personal information may havebeen specified by a user or other entity, determined based on a user'sprior activity (the user had viewed flowers from the site before), etc.This saves the user time and effort and also allows for more targetedinserts, advertisements and sponsored links. In this example, the searchserver would direct the search string “flowers” to a vertical searchengine 208 specific to Yahoo! Yellow pages and Shopping.

The search results page would be more focused as a result. The matchinginserts might not include a link for yellow page searches for the searchterm and the sponsored links and advertisements can be selective. Thus,one sponsor might opt to purchase sponsored link placements for the term“flower” under the yellow pages vertical corpus, but not under a generalsearch. In this manner, advertisements and sponsored links can be morefocused. This is useful, for example, if an advertiser wants to reachusers that are looking to buy flowers.

FIG. 8 depicts an example of a page 800 constructed by page constructor410. In this example, the search string was “dentist” shown in a generalsearch query object 802. General search query object is configured toreceive general search queries. For example, the queries may be for theWorld Wide Web. Embodiments of the present invention may determine andsearch corpuses 212 in addition to performing a general search inresponse to receiving a query in general search query object 802.

Page 800 includes information organized into different page layout areas804, 806, 808, and 810. Although these layouts are shown, it should berecognized that other layouts may be provided.

The top of page 800 includes an indication of the search, and clickablelinks for help, home page, etc. General search results, such as searchresults from a Web index for “dentist”, are listed in layout area 806and 808. In this example, upon a search query using the query string“dentist”, the search server populates storage 402 with Web searchresults, and possibly other results, populates storage 404 withadvertisements to be associated with the search string, populatesstorage 406 with inserts associated with the search string and populatesstorage 408 with sponsored links associated with the search string.

Advertisements might be selected based on what views are sold. Thus, anadvertiser might pay to have a particular advertisement shown on asearch results page if the search query includes the word “dentist”.Sponsored links might also be similarly positioned, such that the orderand/or placement of the links might depend on who pays for theirpresentation and for what search conditions.

Layout area 806 includes links that represent hits responsive to thesearch term and are preferably independent of the sponsors links. Layoutarea 808 is provided for insertion of the sponsored links. Layout area810 provide additional matching inserts, which are specific to thesearch terms used, but are typically not search results, sponsoredmatches or advertisements.

Accordingly, searches in vertical corpuses 212 can be run from thesearch query dialog box 802. For example, personal information mayindicate that a user desires a search in a yellow pages corpus when asearch query of “dentist” is received. The personal information may havebeen specified by a user or other entity, determined based on a user'sprior activity (the user looked up a dentist before), etc. This savesthe user time and effort and also allows for more targeted inserts,advertisements and sponsored links. In this example, the search serverwould direct the search string “dentist” to a vertical search engine 208specific to Yahoo! Yellow pages and Maps.

The search results page would be more focused as a result. The matchinginserts might not include a link for yellow page searches for the searchterm and the sponsored links and advertisements can be selective. Thus,one sponsor might opt to purchase sponsored link placements for the term“dentist” under the Yellow pages vertical corpus, but not under ageneral search. In this manner, advertisements and sponsored links canbe more focused. This is useful, for example, if an advertiser wants toreach users that are looking for a dentist.

Accordingly, embodiments of the present invention are configured toperform searches in a general corpus and/or one or more verticalcorpuses. The vertical search engines are determined based on a queryand/or personal information. A search is then performed using thevertical search engines and a general search engine to generate generalsearch results and vertical search results. The general search resultsand vertical search results may then be combined and outputted to auser.

Embodiments of the present invention provide many advantages. Forexample, a general search and specialized search may be performed whenone query is received. Also, personal information is used to determinewhich corpuses are searched. Thus, the search is personal and specificto a user. Moreover, a user may not have to explicitly specify whichcorpuses to search when a query is entered.

While the present invention has been described using a particularcombination of hardware and software implemented in the form of controllogic, it should be recognized that other combinations of hardware andsoftware are also within the scope of the present invention. The presentinvention may be implemented only in hardware, or only in software, orusing combinations thereof.

The above description is illustrative but not restrictive. Manyvariations of the invention will become apparent to those skilled in theart upon review of the disclosure. The scope of the invention should,therefore, be determined not with reference to the above description,but instead should be determined with reference to the pending claimsalong with their full scope or equivalents.

1. A method of performing a search using a general subdomain including general content and one or more vertical subdomains, each vertical subdomain including specialized content, the method comprising: receiving a search query; determining personal information for a user; causing a search to be performed in a general subdomain of general content using the search query; determining a vertical subdomain based on the personal information; and causing a search to be performed in a vertical subdomain of specialized content using the search query.
 2. The method of claim 1, wherein performing the search in the general subdomain generates general search results and wherein performing the search in the vertical subdomain generates vertical search results, the method further comprising: outputting the general search results and vertical search results.
 3. The method of claim 2, wherein outputting the general search results and vertical search results comprises returning one or more links to results in the general search results and the vertical search results.
 4. The method of claim 3, wherein a link in the one or links is configured such that activation of the link results in outputting results associated with the link.
 5. The method of claim 1, wherein determining the vertical subdomain comprises: segmenting the search query into one or more segments; determining a recognizer for a segment in the one or more segments; and determining the vertical subdomain based on the recognizer.
 6. The method of claim 1, further comprising reformulating the search query based on at least one of the search query and the personal information.
 7. The method of claim 1, further comprising adding a conditional to the search to be performed in the vertical subdomain.
 8. The method of claim 7, wherein the conditional specifies whether a condition if a search should be performed in the vertical subdomain.
 9. The method of claim 7, wherein the conditional specifies whether search results from the search in the vertical subdomain should be included in a search result page.
 10. The method of claim 1, wherein the personal information includes a specification of a vertical subdomain to search.
 11. The method of claim 10, wherein the specification includes conditions dependent on the query.
 12. The method of claim 1, wherein the personal information comprises information specified by the user.
 13. The method of claim 1, wherein the personal information comprises information that is automatically specified by a device of the user.
 14. The method of claim 1, wherein the personal information comprises information that is derived based on a history of the user's activity.
 15. The method of claim 1, wherein the personal information includes a geographic location.
 16. The method of claim 15, further comprising automatically detecting whether the query includes an implicit geographic constraint.
 17. The method of claim 15, further comprising automatically determining the geographic location based on one or more of the user's default location, a current geographic location of a location-aware device utilized by the user, and a location previously indicated by the user and stored.
 18. The method of claim 17, wherein the response includes an option for the user to select a different geographic location than the one automatically determined.
 19. The method of claim 1, further comprising: presenting a graphical user interface to the user including one or more tabs corresponding to the vertical subdomain; and receiving user input selecting one of the tabs, and determining the vertical subdomain based on the selected tab.
 20. The method of claim 19, wherein the vertical engines are controlled by a business owner of the general engine.
 21. The method claim 1, wherein causing the search to be performed in a vertical subdomain includes facilitating electronic execution of a business transaction.
 22. A search server for performing searches in general content and specialized content, the search server comprising: a query processor configured to receive a query; one or more general search engines configured to perform searches in a subdomain including at least a part of the general content; and one or more vertical search engines configured to perform searches in a subdomain including at least a part of the specialized content, wherein query is submitted to a general search engine and a vertical search engine, the vertical search engine determined based on personal information associated with a user.
 23. The search server of claim 22, wherein the general search engine is configured to perform a search using the subdomain including at least a part of the general content using the query to generate general search results.
 24. The search server of claim 23, wherein the vertical search engine is configured to perform a search using the subdomain including at least a part of the specialized content using the query to generate vertical search results.
 25. The search server of claim 24, further comprising a page constructor configured to generate a page including the general and vertical search results.
 26. The search server of claim 22, further comprising at least one of matching advertisements, matching inserts, and sponsored links, wherein one or more of the matching advertisements, matching inserts, and sponsored links are determined based on at least one of the query and the personalized information.
 27. The search server of claim 26, wherein the page constructor is further configured to include the one or more of the matching advertisements, matching inserts, and sponsored links determined.
 28. The search server of claim 22, further comprising a search engine determiner configured to determine the vertical search engine to submit the query to based on the personal information.
 29. A method for personalized information retrieval for use with a plurality of electronic information retrieval engines, at least one of the engines (a “general engine”) supporting general queries against indexed Internet content and a plurality of the other engines (“vertical engines”) supporting queries against specialized-content, the method comprising: storing information personalized to a user; receiving a search query from the user; submitting the search query to the general engine; transmitting a response to the user based in part on output from the general engine; and automatically facilitating access to one or more of the vertical engines as a part of the response for the user, in a manner based at least one of part of the personalized information and part of the search query.
 30. The method of claim 29, wherein facilitating access to the vertical engine comprises: automatically querying the vertical engine based on the search query to generate search results; and returning the search results to the user.
 31. The method of claim 29, wherein facilitating access to the vertical engine comprises: automatically querying the vertical engine based on the search query to generate search results; and returning a link to the search results to the user.
 32. The method of claim 29, wherein facilitating access to the vertical engine comprises: returning a link to the user, wherein the link is configured such that activation of the link results in querying the vertical engine based on the search query and returning the results to the user. 33-50. (canceled) 